Buridan’s ass

Your first modeling challenge

Felix Schönbrodt

Ludwig-Maximilians-Universität München

2023-10-10

Creative Commons Lizenzvertrag

Buridan’s Ass

„The man who is violently, but equally, hungry and thirsty, and stands at an equal distance from food and drink, and who therefore must remain where he is.“

Aristoteles: De Caelo/On the Heavens. Trans. W. K. C. Guthrie, Heinemann, London 1938, 2:13:295b (S. 237)

https://p8.storage.canalblog.com/87/85/553105/80715840.jpeg

The demiurg

“Die Gnosis kannte die Gestalt des Demiurgen, eines Schöpfergottes von niederem Rang, der von der Hochgottheit den Auftrag erhalten hatte, den Kosmos zu erbauen”
N. Bischof (in prep, S. 143)

The gnosis knew the figure of the Demiurge, a creator god of lower rank, who had received the commission from the High Deity to build the cosmos

By Dmitrismirnov - Own work, CC BY-SA 3.0

Das demiurgische Prinzip

Der Forscher, der eine komplexe Struktur verstehen will, ist gut beraten, wenn er sich in die Rolle eines solchen Demiurgen versetzt und sich vorstellt, er hätte sie selbst konstruieren müssen. Natürlich muss er dafür eine begründete Vermutung haben, was sie leisten soll. Leistung schließt immer eine Zielvorgabe ein, die Arbeit des Demiurgen läuft also naturgemäß im Rahmen einer telischen Heuristik 1 ab.
N. Bischof (in prep, S. 143)

The researcher who wants to understand a complex structure is well advised to put himself in the role of such a demiurge and imagine that he would have had to construct it himself. Of course, to do this he must have an educated guess as to what it should perform. Performance always includes a target, so the demiurge’s work naturally runs within the framework of a telic heuristic.

The Demiurgic Principle

Preliminary version

Note

Wäre ich ein Ingenieur, der einen Mechanismus so konstruieren soll, dass er eine Leistung des Organismus ebenso gut wie dieser erbringt und dabei möglichst dieselben Fehler macht – wie würde ich dann vorgehen?
If I were an engineer and I had to design a mechanism that performs as well as the organism and makes the same mistakes – how would I go about it?

Buridan’s ass, level 1: Intuitive modeling

Group exercise: Cover your ass, Level 1

Scenario: The environment has two sources (food and water), in a substantial distance from each other. The donkey has a general metabolism that continuously consumes food and water reserves in the body. As soon as one of the two reserves in the body drops to zero, the donkey dies.

(Simplifying) assumptions:

  • Linear decrease in both water and food reserves in the body, higher under activity (e.g., traveling).
  • No other needs or tasks (e.g., no predators, no sleep necessary).
  • Eating, drinking, and traveling takes a substantial amount of time.
  • The donkey has a representation of the environment and knows where the two sources are.

Task: Construct an organism, with as few assumptions as possible, that survives as long as possible. Which constructs / sensors / abilities are necessary for this?

Deliverable: A markdown text file with a verbal description of the organism. Give it the version number 0.1.0 (cf. Semantic Versioning).

Buridan’s ass, level 2: Draw your diagram

The Demiurgic Principle

Final version

Note

Wäre ich ein Ingenieur, der, aufbauend auf der letzten funktionstüchtigen Vorform, einen Mechanismus so konstruieren soll, dass er eine Leistung des Organismus ebenso gut wie dieser erbringt und dabei möglichst dieselben Fehler macht – wie würde ich dann vorgehen?
If I were an engineer and, building upon the last functional (evolutionary) preform, I had to design a mechanism that performs as well as the organism and makes the same mistakes – how would I go about it?

→ Assume realistic capabilities, which respect the evolutionary path dependency.

E.g., don’t assume …

  • Mammal organisms that need 3 hands to perform a task
  • Omniscient knowledge about the environment, probabilities, distant events, the future, …
  • Unlimited cognitive processing capabilities (“In the first 2ms, the simulated amoeba performs a multidimensional Bayesian optimization task”)

Group exercise: Cover your ass, Level 2

Draw a graphical model, Bischof-style

Consider the underlying psychological research question: How can an organism solve an approach-approach conflict?

Task: Sketch your initial verbal model in the style of Bischof. Refine and extend where necessary, e.g.:

  • Think about which sensors are necessary (both towards internal states and towards the environment) and which actors are necessary
  • Give a label to every variable (i.e., every arrow in the graphical model).

Deliverables:

  • Draw the model collaboratively in draw.io. In one corner, add the version number 0.2.0 and today’s date (simply as a text box).
  • Export the model as an xml file and push it to your group’s Github repo.
  • Write a meaningful commit message, e.g. Initial commit; model version 0.2.0

Buridan’s ass, level 3

Group exercise: Cover your ass, Level 3

Construct and variable definitions

In the previous lecture, you learned how a good construct definition looks like. Apply that new skill to your model!

Task:

  • Develop proper definitions for all variables and concepts in your model
  • If necessary, update the model structure in draw.io; increase either the minor version (e.g., to 0.3.0) or only the patch version (e.g., 0.2.1); export a new xml file.
  • Provide the definitions of the model’s variables and constructs in a separate markdown file (Definitions.md).

Deliverables:

  • Create a CHANGELOG.md file that explains the changes in the model in more detail.
  • Push all new files to your group’s Github repo.
  • Write a meaningful commit message that explains the changes.

Buridan’s ass, level 4

Group exercise: Cover your ass, Level 4

Variable Scaling & Netlogo Implementation

Tasks:

  • Define the variables in the implemented model:
    • Scale level
    • Possible range or discrete values (define the set)
    • Interpretability (what does a value of 0.7 mean?)
      • Maybe define operationalizations that give a meaning to the numbers
  • Define computations for each box: How exactly are input variables transformed into the output variables? You need a concrete formula for that. Theories rarely are so specific that you can directly derive a formula; you probably need to fill many gaps with ad-hoc assumptions.
  • Implement the model in Netlogo

Deliverables:

  • Push the .nlogo file to your group’s Github repo.
  • Update all written model descriptions, increase model version.
  • Explain & justify the changes in the model in your CHANGELOG.md.
  • Write a meaningful commit message.

End

Contact

  • nicebread
  • CC-BY-SA 4.0